package com.bcxj.internalcommon.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * ClassName: DirectionSegment
 * Package: com.bcxj.internalcommon.vo
 * Description:
 *
 * @Author BCXJ
 * @Create 2025/2/26 00:20
 * @Version 1.0
 * @Since 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DirectionSegment {
    private Walk walk;
    private List<BusLine> busLines;
    private Railway railway;
    private Taxi taxi;


    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Walk{
        private String destination;
        private String distance;
        private String origin;
        private List<Step> step;
        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public static class Step{
            private String instruction;
            private String road;
            private String code;
            private String polyline;
        }
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    // 涵盖地铁，公交
    public static class BusLine{
        private String departureStopName;
        // 出发地经纬度
        private String departureLocation;
        private String arrivalStopName;
        private String arrivalLocation;

        //线路名字
        private String lineName;
        //线路类型
        private String lineType;
        private String distance;
        private String polyline;
        private String startTime;
        private String endTime;
        // 途径的车站
        private List<ViaStop> step;
        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public static class ViaStop{
            private String stopName;
            private String location;
        }
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    // 铁路
    public static class Railway{
        private String departureStopName;
        private String departureStopLocation;
        private String departureStopTime;
        private String arrivalStopName;
        private String arrivalStopLocation;
        private String arrivalStopTime;

        // 线路名称
        private String railName;
        private String distance;
        private String time;

        private List<Space> spaces;
        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public static class Space{
            private String code;
            private String cost;
        }
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    // 打车
    public static class Taxi {
        private String startPoint;
        private String startName;
        private String endPoint;
        private String endName;
        private String polyLine;
        private String distance;
        private String driveTime;
        private String price;
    }


}
